/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


/**
 *
 * @author JAVA
 */
//import java.util.*;
import gestorvideoclub.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
//import sun.misc.Cleaner;
//import java.util.ArrayList;


/* Subclase de Usuario hereda de él*/

public class Cliente_bypass extends Usuario {
/*
    private double saldo;
    private int NumProdAlqActual = 0;
    private static int NumMaxProducto;
    private Date FechaNacimiento;
   
    private Franquicia franquicia;

    static {
        NumMaxProducto = 5;
    }
//Constructor por defecto

    public Cliente() {
    }
//Constructor por parametros

    public Cliente(String nombre, String apellidos, String DNI, String contrasena, String telefono,
            double saldo, Date FechaNacimiento) {

        super(nombre, apellidos, DNI, contrasena, telefono);
        this.saldo = saldo;
        this.NumProdAlqActual = 0;
        this.FechaNacimiento= new Date(2011, 4, 1);//Esto hay que cambiarlo
    }
/* Get y Set*/
/*/
    public Date getFechaNacimiento() {
        return FechaNacimiento;
    }

    public void setFechaNacimiento(Date FechaNacimiento) {
        this.FechaNacimiento = FechaNacimiento;
    }


//    public Date getFecha() {
//        return this.fecha;
//    }
//
//    public void setFecha(Date fecha) {
//        this.fecha = fecha;
//    }


    public static int getNumMaxProducto() {
        return NumMaxProducto;
    }

    public static void setNumMaxProducto(int NumMaxProducto) {
        Cliente.NumMaxProducto = NumMaxProducto;
    }

    public int getNumProdAlqActual() {
        return NumProdAlqActual;
    }

    public void setNumProdAlqActual(int NumProdAlqActual) {
        this.NumProdAlqActual = NumProdAlqActual;
    }

    public double getSaldo() {
        return saldo;
    }

    public void setSaldo(double saldo) {
        this.saldo = saldo;
    }

    @Override /*Sobreescribir dar alta de usuario*/

    /** Dar de alta al Cliente*/
/*

    public void altaUsuario() {
        String nom;
        String estadoU;
        String apel, dni, pin, tel;



        System.out.println("Nombre del Cliente ");
        nom = introduceDatos.introduceString();
        this.setNombre(nom);

        System.out.println("Apellidos del Cliente ");
        apel = introduceDatos.introduceString();
        this.setApellidos(apel);

        System.out.println("DNI del Cliente ");
        dni = introduceDatos.introduceString();
        this.setDNI(dni);

        System.out.println("Contraseña Cliente ");
        pin = introduceDatos.introduceString();
        this.setContrasenya(pin);

        System.out.println("Telefono Cliente ");
        tel = introduceDatos.introduceString();
        this.setTelefono(tel);

        System.out.println("Saldo Inicial: ");
        saldo = introduceDatos.introduceFloat();
        this.setSaldo(saldo);

        System.out.println("Fecha Nacimiento(dd-mm-aaaa): ");
        String fechaAux = introduceDatos.introduceString();
        try {
            try {
                Class.forName("com.mysql.jdbc.Driver").newInstance();
            } catch (InstantiationException ex) {
                Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
            }
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            Connection con = DriverManager.getConnection("jdbc:mysql://192.168.1.12:3306/gestorvideoclub", "Aula2pc02", "Aula2pc02");
        } catch (SQLException ex) {
            Logger.getLogger(Cliente.class.getName()).log(Level.SEVERE, null, ex);
        }


    }
/* Sobreescribir la presentacion de cliente*/
/*
    @Override
    public String toString() {
        return this.getNombre() + " " + this.getApellidos() + " " + "DNI " + this.getDNI() + "\nTelefono " + this.getTelefono() + "\nFecha de nacimiento: " + this.getFechaNacimiento()
                + "\nSaldo = " + saldo + "\nNúmero Producto/s alquilado actualmente = "
                + NumProdAlqActual + "\nNumero Maximo de producto para alquilar = " + NumMaxProducto
                + "\nEstado cliente: " + this.getEstadoUsuario() + "\n";
    }
/** Metodo para la consulta del cliente en cajero*/

    public void ConsultaClienteCajero() {

        System.out.println(this);


    }
/** Hace consultas del cliente*/
/*
    public void ConsultaClienteTienda() {

        String dni;
        System.out.println("Introduzca el DNI:");
        dni = introduceDatos.introduceString();

        //pte del acceso a la bbdd 

    }
/** Hace modificaciones sobre los atributos del cliente:nombre, apellidos, DNI,
 * Fecha de nacimiento, tlfno, ...
 *//*
    public void modificacionCliente() {
        int opcion;
        String nom, apell, dni, fena, tlfno, con;
        EstadoUsuario estusu;
        boolean salir = false;
        do {
            System.out.println("Seleccione la opcion que desea modificar: ");
            System.out.println("------------------------------------- ");
            System.out.println("1.- Nombre ");
            System.out.println("2.- Apellidos ");
            System.out.println("3.- DNI ");
            System.out.println("4.- Fecha de Nacimiento ");
            System.out.println("5.- Telefono ");
            System.out.println("6.- Contraseña ");
            System.out.println("7.- Estado del Usuario ");
            System.out.println("8.- Salir");
            System.out.println("\n");
            opcion = introduceDatos.introduceEntero();
            System.out.println();



            switch (opcion)//accedera los usuarios
            {
                case 1:
                    System.out.println("Introduzca el nombre a modificar: ");
                    nom = introduceDatos.introduceString();
                    this.setNombre(nom);
                    System.out.println();
                    System.out.println(this);
                    break;
                case 2:
                    System.out.println("Introduzca el apellido q desea modificar: ");
                    apell = introduceDatos.introduceString();
                    this.setApellidos(apell);
                    System.out.println();
                    System.out.println(this);
                    break;
                case 3:
                    System.out.println("Introduzca el DNI a modificar: ");
                    dni = introduceDatos.introduceString();
                    this.setDNI(dni);
                    System.out.println();
                    System.out.println(this);
                    break;
                case 4:
                    System.out.println("Introduzca la Fecha de Nacimiento a modificar: ");
                    fena = introduceDatos.introduceString();
                    this.setFechaNacimiento(FechaNacimiento);
                    System.out.println();
                    System.out.println(this);
                    break;
                case 5:
                    System.out.println("Introduzca el telefono a modificar: ");
                    tlfno = introduceDatos.introduceString();
                    this.setTelefono(tlfno);
                    System.out.println();
                    System.out.println(this);
                    break;
                case 6:
                    System.out.println("Introduzca la contraseña a modificar: ");
                    con = introduceDatos.introduceString();
                    this.setContraseña(con);
                    System.out.println();
                    System.out.println(this);
                    break;
                //Sólo accedera el administrador/jefe
                case 7:

                    System.out.println("Introduzca el Estado del usuario a modificar: ");
                    estusu = introduceDatos.introduceString();
                    this.setEstadoUsuario(EstadoUsuario.Alta); // TODO MIGUEL cambiar esto
                    System.out.println();
                    System.out.println(this);

                    //System.out.println("Introduzca el Estado del usuario a modificar: ");
                    recorreEstadoUsuario();
                    int op;
                    rellenaArrayEstadoUsuario();
                    int pos;
                    op= aestusu.length;


                    String nuevoEstado = null;
                    int i = 1;
                    for (EstadoUsuario eu : EstadoUsuario.values()) {
                        System.out.println(i + ". " + eu);
                        i++;
                    }
                    System.out.println("Introduzca el nuevo estado: ");
                    int pos = introduceDatos.introduceEntero();
                    if (pos == 1) {
                        nuevoEstado = "Alta";
                    } else if (pos == 2) {
                        nuevoEstado = "Baja";
                    } else if (pos == 3) {
                        nuevoEstado = "Bloqueado";
                    } else {
                        System.out.println("Opción incorrecta.");
                    }
                    this.setEstadoUsuario(EstadoUsuario.valueOf(nuevoEstado));
                    System.out.println(this.getEstadoUsuario());

                    break;
                case 8:
                    System.out.println("Hasta pronto");
                    salir = true;
                    break;
                default:
                    System.out.println("Opción incorrecta");
            }


            }

        } while (!salir);


        }while (!salir);


    }


    public void añadirSaldo(double sal) {

        // double nuevosal;

        if (sal < 0) {

    public void rellenaArrayEstadoUsuario(){
         int cont=0;
         for(EstadoUsuario g: EstadoUsuario.values())
         {
             aestusu[cont]=g;
         }
    }
public void añadirSaldo(double sal){
       
       // double nuevosal;
        
        if (sal<0){

    

    public void añadirSaldo(double sal) {


        System.out.println("Introduzca el saldo q desea aumentar ");
        if (sal < 0) {

            System.out.println("Error: Cantidad negativa ");
            return;
        }
        System.out.println(this);
        this.saldo += sal;


        System.out.println("Su actual saldo son  " + this.saldo + " euros.");

    }

        System.out.println("Su actual saldo son  " + this.saldo + " euros.");

    }

    public void retirarSaldo(double sal) {
        

        double aux=this.getSaldo() - sal;
        this.setSaldo(aux);
        System.out.println("\n");
        System.out.println(this);
        System.out.println("Saldo actual \n" + aux);
    }

    public void consultaProdAlquilado(){




        

    }

    public void consultaReservaProd(){


    }*/

}

